package com.edt.ichannel.api.service;

import com.edt.ichannel.api.common.entity.ActionResult;
import com.edt.ichannel.api.entiy.local.OrderCreditKd;

import java.util.List;


/**
 * OrderCreditKd服务接口类
 *
 * @author
 * @date 2018-09-27
 */
public interface OrderCreditKdService {

    /**
     * 批量添加宽带首充订单
     *
     * @param orderCreditKds 手动订单集合
     * @author 李爽
     * @date 2018-09-27
     */
    void saveOrderCreditKdList(List<OrderCreditKd> orderCreditKds);

    /**
     * 添加单条宽带首充记录
     *
     * @param ordercreditkd ordercreditkd
     * @return ActionResult
     * @author 李爽
     * @date 2018-09-27
     */
    ActionResult saveOrderCreditKd(OrderCreditKd ordercreditkd);

    /**
     * 修改宽带首充记录
     *
     * @param ordercreditkd ordercreditkd
     * @return ActionResult
     * @author 李爽
     * @date 2018-09-27
     */
    ActionResult updateOrderCreditKd(OrderCreditKd ordercreditkd);


    /**根据手机号和userid查询记录
     * @param phoneNumber, userId
     *             手机号,userid
     * @return com.edt.ichannel.api.entiy.local.OrderCreditKd
     *              查询接口，应该有一条或者为空
     * @author 孙梁
     * 2018/9/28 15:15
     */
    OrderCreditKd selectOrderCriditKdByPhoneAndUserId(String phoneNumber, String userId);

    /**
     * 将宽带表中首充大于0的数据存入ordercredit
     * @author 孙梁
     * 2018/9/29 10:27
     */
    void moveOrderCreditKdToOrderCredit();


    /**
     * 查询所有需要发放数据
     * @author 孙梁
     * 2018/9/29 13:17
     */
    List<OrderCreditKd> selectNeedPutOut();

    /**
     * 根据点单编码查询数据
     * @param orderCode 订单编码
     * @return 查询结果
     */
    OrderCreditKd selectOrderCreditKdByOrderCode(String orderCode);

    /**
     * 添加或修改宽带数据
     * @param orderCreditKd 宽带信息
     */
    void saveOrUpdateOrderCreditKd(OrderCreditKd orderCreditKd);

    /**
     * 将给定订单移动到ordercredit
     * @param orderCode 订单编码
     */
    void moveOrderCreditKdToOrderCreditByOrderCode(String orderCode);

    /**
     * 结束按月发放流程
     * @param id 宽带数据id
     */
    void overFlowMonthCommission(String id);

    /**
     * 给指定宽带信息添加佣金
     * @param id 宽带id
     * @param commissionMoney 佣金金额
     */
    void addCommissionMoney(String id, Double commissionMoney);

    void appendRemark(String id, String s);
}
